#pragma once
#include "GePoint3.h"
namespace tge
{
	template<typename RealT, typename PointType, typename VectorType>
	class TGeRay3
	{
	public:
		PointType  m_ptOrigin;
		VectorType m_dir;
	public:
		TGeRay3(){}
		TGeRay3(const PointType&pt0, const VectorType&dir)
			:m_ptOrigin(pt0), m_dir(dir)
		{}
		const PointType&p0()const{ return m_ptOrigin; }
		const VectorType&dir()const{ return m_dir; }
	};
	typedef TGeRay3<double, GePoint3d, GeVector3d>GeRay3d;
}